package com.avcdata.aoscustommade.main;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.FragmentActivity;
import android.text.format.Time;
import android.view.View;
import android.view.WindowManager;
import android.widget.Toast;

import com.avcdata.aoscustommade.utils.SharedPreferencesUtils;
import com.avcdata.national.utils.ScreenShot;
import com.tandong.swichlayout.SwichLayoutInterFace;
import com.tandong.swichlayout.SwitchLayout;

import java.io.File;

import cn.sharesdk.onekeyshare.OnekeyShare;

/**
 *Activity基类
 */
public abstract class BaseActivity extends FragmentActivity implements View.OnClickListener, SwichLayoutInterFace {
    public Bundle savedInstanceState;
    private ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.savedInstanceState = savedInstanceState;
        super.onCreate ( savedInstanceState );
        setEnterSwichLayout ();
        initView ();
        initInstall();
        initData();
        evenControl();

    }

    @Override
    public void setEnterSwichLayout() {

    }

    @Override
    public void setExitSwichLayout() {
        SwitchLayout.getSlideToLeft ( this, true, null );
    }

    @Override
    protected void onDestroy() {
        super.onDestroy ();
//        AppActivityManager.getAppManager().finishAllActivity();
    }

    @Override
    public void onClick(View view) {
        onClickEvent ( view );
    }



    /**
     * 初始化布局
     */
    abstract public void initView();

    /***
     * 初始化设置
     */
    abstract public void initInstall();


    /***
     * 初始化数据
     */
    abstract public void initData();


    /***
     * 事件控制
     */
    abstract public void evenControl();

    /**
     * onClick方法的封装，在此方法中处理点击事件
     * @param view 被点击的View对象
     */
    abstract public void onClickEvent(View view);


    /**
     * 短时间显示Toast
     *
     * @param info 显示的内容
     */
    public void showToast(String info) {
        Toast.makeText(this, info, Toast.LENGTH_SHORT).show();
    }

    /**
     * 显示正在加载的进度条(不含内容)
     */
    public void showProgressDialog() {
        if (progressDialog != null && progressDialog.isShowing ()) {
            progressDialog.dismiss ();
            progressDialog = null;
        }
        progressDialog = new ProgressDialog ( BaseActivity.this );
        progressDialog.setCanceledOnTouchOutside ( false );
        try {
            progressDialog.show ();
        } catch (WindowManager.BadTokenException exception) {
            exception.printStackTrace ();
        }
    }

    /***
     * 显示正在加载的进度条
     *
     * @param msg 显示的内容
     */
    public void showProgressDialog(String msg) {
        if (progressDialog != null && progressDialog.isShowing ()) {
            progressDialog.dismiss ();
            progressDialog = null;
        }
        progressDialog = new ProgressDialog ( BaseActivity.this );
        progressDialog.setMessage ( msg );
        try {
            progressDialog.show ();
        } catch (WindowManager.BadTokenException exception) {
            exception.printStackTrace ();
        }
    }

    /**
     * 隐藏正在加载的进度条
     */
    public void dismissProgressDialog() {
        if (null != progressDialog && progressDialog.isShowing () == true) {
            progressDialog.dismiss ();
            progressDialog = null;
        }
    }

    protected void showShare(View view) {
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();
        Time t = new Time();
        t.setToNow();
        String filepath = Environment.getExternalStorageDirectory().toString() +
                "/avcdata/channelcompass/" + new SharedPreferencesUtils(this).getUserPhone() + "&" +
                t.year + "-" + (t.month + 1) + "-" + t.monthDay + "-" + t.hour + ":" + t.minute + ":" + t.second + ".jpg";
        File file = new File(filepath);
        ScreenShot.shoot(this, file);
        oks.setImagePath(filepath);
//        oks.setViewToShare ( view );
//        // title标题，印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
//        oks.setTitle ( "渠道罗盘" );
//        // titleUrl是标题的网络链接，仅在Linked-in,QQ和QQ空间使用
////        oks.setTitleUrl ( "http://sharesdk.cn" );
//        // text是分享文本，所有平台都需要这个字段
//        oks.setText ( "渠道罗盘测试分享文本内容" );
        //分享网络图片，新浪微博分享网络图片需要通过审核后申请高级写入接口，否则请注释掉测试新浪微博
        //oks.setImageUrl ( "http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg" );
        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        //oks.setUrl ( "http://sharesdk.cn" );
//        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
//        oks.setComment ( "我是测试评论文本" );
//        // site是分享此内容的网站名称，仅在QQ空间使用
//        oks.setSite ( "ShareSDK" );
//        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
//        oks.setSiteUrl ( "http://sharesdk.cn" );
//         //启动分享GUI
        oks.show(this);
    }
}
